
function s1_read_last_two_bytes_of_a_mbr_backup_file(){
       local file_path=$1
       local last_bytes=$(tail -c 2 "$file_path" | od -A n -t x1 | tr -d '\n')
       if ["$last_bytes"="55aa"];then
            echo "yes"
       else
         echo "NO"
       fi
}

function s2_read_mbr_partition_table_info(){
      for i in {0..3}; do
          offset=$((446+i*16))
          start_sectof=$(dd if="$1" bs=1 skip=$((offset+8))count=4 2>/dev/null | od -t u4 -An | tr -d '\n')
      if ! [[$start_sector=~ ^[0-9]+$ ]];then
          continue
      fi
      if ["$start_sector" -eq 0];then
          continue
      fi
      size_sector=$(dd if"$1" bs=1 skip=$((offset+12)) count=4 2>/dev/null | od -t u4 -An | tr -d '\n')
      end_sector=$((start_sector+size_sector - 1))
      echo "$start_sector $end_sector"
     done
}

function s3_parse_partition_info(){
     fdisk_output=$(cat)
     disk_size_bytes=$(echo "fdisk_output" | grep "Disk /dev/vda:" | awk '{print $5}')
     disk_size_sectors=$(echo "$fdisk_output" | grep "Disk /dev/vda:" awk '{print $7}')
     physical_sector_size=$(echo "$fdisk_output" | grep "sector size" | awk '{print $4}')
     first_partition_start_sector=$(echo "$fdisk_output" | grep "/dev/vda1" | awk '{print $3}')
     first_partition_end_sector=$(echo "$fdisk_output" | grep "/dev/vda1" | awk '{print $4}')
     first_partition_type=$(echo "$fdisk_output" | grep "/dev/vda1" | awk '{print $8}')
     echo "disk size in bytes:$disk_size_bytes"
     echo "disk size in sectors:$disk_size_sectors"
     echo "physical sector size in bytes:$physical_sector_size"
     echo "first partition start sector id:$first_partition_start_sector"
     echo "first patition end sector id:$first_patition_end_sector"
     echo "first partition type:$first_partition_type"
}

function s4_run_passwd_as_plain_user_and_get_status(){
     oversleeping_path=$(which oversleeping)
     chown root "$oversleeping_path"
     chmod 4755 "$oversleeping_path"
     oversleeping & ps -o uid,euid,ruid -C oversleeping | awk 'NR>1 {print $1","$2","$3}'
}

function s5_add_a_scheduled_task(){
     touch $HOME/test_crontab;
     echo "*/5****date +\%Y\%m\%d_\%H\%M\%s >> $HOME/test_crontab" | crontab -
}

